package cn.iocoder.yudao.module.crossborder.srm.api.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 供应商创建请求 DTO
 *
 * @author LHL
 */
@Schema(description = "RPC 服务 - 供应商创建请求 DTO")
@Data
public class SupplierCreateReqDTO {

    @Schema(description = "供应商代码", example = "SUP001")
    private String code;

    @Schema(description = "供应商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "优质供应商有限公司")
    @NotEmpty(message = "供应商名称不能为空")
    private String name;

    @Schema(description = "供应商简称", example = "优质供应商")
    private String shortName;

    @Schema(description = "供应商类型", example = "1")
    private Integer type;

    @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "联系人不能为空")
    private String contactPerson;

    @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED, example = "13800138000")
    @NotEmpty(message = "联系电话不能为空")
    private String contactPhone;

    @Schema(description = "联系邮箱", example = "supplier@example.com")
    private String contactEmail;

    @Schema(description = "公司地址", example = "上海市浦东新区张江高科技园区")
    private String address;

    @Schema(description = "邮政编码", example = "200000")
    private String zipCode;

    @Schema(description = "所在国家", example = "中国")
    private String country;

    @Schema(description = "所在省份", example = "上海市")
    private String province;

    @Schema(description = "所在城市", example = "上海市")
    private String city;

    @Schema(description = "营业执照号", example = "91310000123456789X")
    private String businessLicense;

    @Schema(description = "税务登记号", example = "310000123456789")
    private String taxNumber;

    @Schema(description = "银行账号", example = "1234567890123456789")
    private String bankAccount;

    @Schema(description = "开户银行", example = "中国工商银行")
    private String bankName;

    @Schema(description = "主营业务", example = "电子产品制造")
    private String mainBusiness;

    @Schema(description = "成立时间")
    private LocalDateTime establishTime;

    @Schema(description = "注册资本", example = "1000000.00")
    private BigDecimal registeredCapital;

    @Schema(description = "员工人数", example = "500")
    private Integer employeeCount;

    @Schema(description = "年营业额", example = "50000000.00")
    private BigDecimal annualRevenue;

    @Schema(description = "信用等级", example = "AAA")
    private String creditRating;

    @Schema(description = "质量认证", example = "ISO9001,ISO14001")
    private String qualityCertifications;

    @Schema(description = "备注", example = "优质供应商，长期合作伙伴")
    private String remark;

}
